package brwarner.game 
{
	/**
	 * ...
	 * @author Brook Jensen
	 */
	public class GameConstants 
	{
		public static const INITIAL_POP : Number = 10; //Initial population of a new city
		public static const POPULATION_LEVELS : Array = [ 0, 50, 100 ]; //Population required to go to next level city
		public static const POPULATION_MAX : Number = 150;
		public static const GROWTH_RATE : Array = [ 0.1, 0.3, 0.5 ]; //Population growth per cycle
		//public static const GROWTH_CAP : Number = 1000; //Max population
		public static const MONEY_PER_CAPITA : Number = 1; //Funds produced per person in a city
		public static const INITIAL_FUNDS : Number = 400;
		
		public static const GRID_SIZE : Number = 15; //Grid size (width and height)
		
		public static const FRAME_RATE : Number = 24; //For reference, YOU CAN NOT CHANGE THIS HERE (FPS)
		
		public static const FRAMES_PER_TURN : Number = int(2*FRAME_RATE); //Frames per human turn
		public static const FRAMES_PER_GOD_TURN : Number = int(10*FRAME_RATE); //Frames per regeneration of mana turn
		
		//Gods initial mana valuesin
		public static const INITIAL_MANA:Array = new Array (
			0, //Fire
			0, //Water
			0, //Air
			0  //Ground
		);
		
		//Gods max mana values
		public static const MAX_MANA:Array = new Array (
			150, //Fire
			150, //Water
			150, //Air
			150  //Ground
		);
		
		//Mana generated by each square type per regeneration turn
		public static const GENERATION_RATES:Array = new Array ( //Fire, Water, Air, Ground
			[2, 0, 0, 0 ],//Plains
			[4, 0, 0, 0 ], //Desert
			[0, 0, 0, 0 ], //Ice
			[0, 1, 1, 0 ], //River
			[0, 0, 0, 2 ], //Forest
			[0, 0, 1, 0 ], //Mountain
			[0, 0, 1, 1 ]  //Snow Mountain
		);
		public static const MANA_GEN_MULT:Number = 0.2;
		
		//Costs to build on different land masses (see GridSquare class for indexes)
		public static const BUILD_COSTS:Array = new Array(
			100, //Plains
			-1, //Desert
			200, //Ice
			250, //River
			300, //Forest
			500, //Mountain
			500, //Snow Mountain
			0,	 //Blank
			1000 //Tower
		);
		
		//If turned off, the humans don't move
		public static const HUMANS_ACTIVE:Boolean = true;
		
		//Test grid
		public static const TEST_GRID:Array = [
			[0, 0, 3, 3, 3, 0, 0, 0, 0, 0],
			[0, 0, 3, 3, 3, 0, 0, 0, 0, 0],
			[0, 0, 3, 3, 3, 0, 0, 0, 0, 0],
			[0, 0, 0, 3, 0, 0, 0, 0, 0, 0],
			[0, 0, 0, 3, 0, 0, 0, 0, 0, 0],
			[0, 0, 0, 3, 3, 3, 3, 0, 0, 0],
			[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
			[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
			[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
			[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
		];
		public static const USE_TEST_GRID:Boolean = false;
		
	}

}